//package com.demo.temp;
//
//import com.jcraft.jsch.ChannelSftp;
//import com.ruimin.ifb.inter.component.base.BaseSwitchComponent;
//import com.ruimin.ifb.inter.ebms.common.services.CommInterfaceService;
//import com.ruimin.ifb.inter.ebms.inBean.EBMSE121Req;
//import com.ruimin.ifb.inter.ebms.inBean.EBMSE121ReqAttInfoList;
//import com.ruimin.ifb.inter.ebms.outBean.EBMSE121Rsp;
//import com.ruimin.ifb.inter.utilHB.InterConstant;
//import com.ruimin.ifs.core.exception.SnowException;
//import com.ruimin.ifs.core.exception.SnowExceptionUtil;
//import com.ruimin.ifs.core.util.DataFormat;
//import com.ruimin.ifs.util.SftpUtils;
//import org.apache.log4j.Logger;
//
//import java.io.File;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * 附件上传结果
// *
// * @author zhiqiang
// */
//public class EBMSE121Component extends BaseSwitchComponent {
//
//    Logger log = Logger.getLogger(EBMSE121Component.class);
//
//    private final String host = "10.100.32.74";
//    private final int port = 9007;
//    private final String userName = "sftpuser";
//    private final String passWord = "sftpuser";
//    private final String saveLocalPath = "/Users/zhiqiang/t1";
//
//    @Override
//    public Object process(Object object) throws Exception {
//        EBMSE121Req inBean = (EBMSE121Req) object;
//        EBMSE121Rsp outBean = new EBMSE121Rsp();
//        // 入参校验
//        this.doCheck(inBean);
//        // 下载附件到本地
//        this.downAttInfo(inBean);
//        // 从本地上传附件到服务器并删除本地文件
//        this.upAttInfo(inBean);
//        // 处理报文头
//        outBean.setRspCode(InterConstant.RSP_CODE);
//        CommInterfaceService.getInstance().setResponesHeadBeanBySuccess(inBean, outBean, new ArrayList(), null);
//        return outBean;
//    }
//
//    /**
//     * 上传附件
//     *
//     * @param inBean
//     */
//    private void upAttInfo(EBMSE121Req inBean) throws SnowException {
//        List<EBMSE121ReqAttInfoList> attInfoList = inBean.getList();
//        SftpUtils sftpUtil = new SftpUtils();
//        log.info("连接sftp开始...");
//        ChannelSftp connect = sftpUtil.connect(host, port, userName, passWord);
//        log.info("成功连接sftp！");
//        for (EBMSE121ReqAttInfoList attInfo : attInfoList) {
//            log.info("开始上传附件，附件名称【{" + attInfo.getAttName() + "}】");
//            String flag = sftpUtil.upload("/home/sftpuser/attachment/20220610/", saveLocalPath + "/" + attInfo.getAttName() + "." + attInfo.getFileSuffix(), connect);
//            if ("1".equals(flag)) {
//                log.info("附件上传失败，关闭sftp连接");
//                sftpUtil.disconnect(host, connect);
//                SnowExceptionUtil.throwErrorException("附件上传失败，附件名称【{" + attInfo.getFileSuffix() + "}】");
//            }
//            log.info("附件上传成功，附件名称【{" + attInfo.getAttName() + "}】");
//            File file = new File(saveLocalPath);
//            File[] files = file.listFiles();
//            for (File fi : files) {
//                if ((attInfo.getAttName() + "." + attInfo.getFileSuffix()).equals(fi.getName())) {
//                    fi.delete();
//                }
//            }
//            log.info("本地附件删除成功，附件名称【{" + attInfo.getAttName() + "}】");
//        }
//        log.info("附件全部上传成功，关闭sftp链接");
//        sftpUtil.disconnect(host, connect);
//    }
//
//    /**
//     * 下载附件信息
//     *
//     * @param inBean
//     */
//    private void downAttInfo(EBMSE121Req inBean) throws SnowException {
//        List<EBMSE121ReqAttInfoList> attInfoList = inBean.getList();
//        SftpUtils sftpUtil = new SftpUtils();
//        log.info("连接sftp开始...");
//        ChannelSftp connect = sftpUtil.connect(host, port, userName, passWord);
//        log.info("成功连接sftp！");
//        for (EBMSE121ReqAttInfoList attInfo : attInfoList) {
//            log.info("开始下载附件，附件名称【{" + attInfo.getAttName() + "}】");
//            String flag = sftpUtil.download(attInfo.getAttUrl() + "/", attInfo.getAttName() + "." + attInfo.getFileSuffix(), saveLocalPath + "/" + attInfo.getAttName() + "." + attInfo.getFileSuffix(), connect);
//            if ("1".equals(flag)) {
//                log.info("附件下载失败，关闭sftp连接");
//                sftpUtil.disconnect(host, connect);
//                SnowExceptionUtil.throwErrorException("附件下载失败，附件名称【{" + attInfo.getFileSuffix() + "}】");
//            }
//            log.info("附件下载成功，附件名称【{" + attInfo.getAttName() + "}】");
//        }
//        log.info("附件全部下载成功，关闭sftp链接");
//        sftpUtil.disconnect(host, connect);
//    }
//
//    /**
//     * 校验请求参数
//     *
//     * @param inBean
//     * @throws Exception
//     */
//    public void doCheck(EBMSE121Req inBean) throws Exception {
//        if (DataFormat.isEmpty(inBean.getJym())) {
//            SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"交易码"});
//        }
//        if (DataFormat.isEmpty(inBean.getCustNo())) {
//            SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"申请人客户号"});
//        }
//        if (DataFormat.isEmpty(inBean.getAcmtAcct())) {
//            SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"账号"});
//        }
//        if (DataFormat.isEmpty(inBean.getAcctBk())) {
//            SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"账户开户行号"});
//        }
//        if (DataFormat.isEmpty(inBean.getAcctBkNm())) {
//            SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"账户开户行名"});
//        }
//        if (inBean.getList() == null || inBean.getList().size() == 0) {
//            SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"附件信息"});
//        } else {
//            // 对每一个附件信息校验，全部没有错误进行附件上传
//            for (EBMSE121ReqAttInfoList attInfo : inBean.getList()) {
//                if (DataFormat.isEmpty(attInfo.getAttTyp())) {
//                    SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"附件名称"});
//                }
//                if (DataFormat.isEmpty(attInfo.getFileSuffix())) {
//                    SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"附件拓展名"});
//                }
//                if (DataFormat.isEmpty(attInfo.getAttUrl())) {
//                    SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"附件Url"});
//                }
//                if (DataFormat.isEmpty(attInfo.getSendDate())) {
//                    SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"上传日期"});
//                }
//                if (DataFormat.isEmpty(attInfo.getEbankId())) {
//                    SnowExceptionUtil.throwErrorException("IT_E001", new String[]{"网银流水号"});
//                }
//            }
//        }
//    }
//}
